A portion of the disclosure of this patent document contains material which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the Patent and Trademark Office patent file or records, but otherwise reserves all copyright rights whatsoever.
1. Field of the Invention
This invention relates generally to a method of adjusting the power-consumption sleeping state of an operating system, and relates more particularly to a method of dynamically altering the lowest sleeping state of an operating system which is operating in Advanced Configuration and Power Interface (ACPI) mode. See Advanced Configuration and Power Interface Specification, by Intel, Microsoft and Toshiba, Revision 1.0b (Feb. 2, 1999).
2. Background of the Invention
In a computer system, the hardware normally dictates the level of the power system""s sleeping state, and the selected sleeping state will be a static value. However, maintaining a static value for the power system""s sleeping state is not efficient in terms of power savings. Accordingly, it is desirable to provide a method of dynamically altering the level of the power system""s sleeping state.
An operating system (OS) which is operating in Advanced Configuration and Power Interface (ACPI) mode determines the lowest power system sleeping state based on the following: a) ACPI Differential System Description Table (DSDT); b) ACPI Secondary System Description Table (SSDT); and c) ACPI Persistent System Description Table (PSDT). ACPI facilitates streamlining of the previously known collection of disparate power management mechanisms into a unified, well-specified power management and configuration mechanism. ACPI, which is an abstract interface, enhances power management functionality and robustness by facilitating implementation in the OS (operating system) of power management techniques which are too complicated to be implemented in a ROM (read-only memory) BIOS. One method of dynamically selecting the sleeping state in ACPI mode is to use one SSDT table per sleep state and use ACPI code to change the SSDT tables to achieve the desired sleeping. However, this method suffers from the drawback of requiring multiple SSDT tables.
In accordance with the present invention, a computer system""s BIOS (basic input/output system) POST (power-on self test) sets a bit or bits in an ISA (industry standard architecture) I/O (input/output) port, in a memory location, or in a scratch pad register accessed via an ISA I/O port (indexed or non-indexed), that the AML (ACPI control method Machine Language) in the DSDT or other ACPI tables can access. These bit(s) will be set depending upon SETUP program selections or different hardware configurations detected by the BIOS during POST. The AML will return back different values for the lowest system sleep state depending upon the bit value(s) read from the ISA I/O port, the memory or the scratch pad register accessed via the ISA I/O port.
In addition, the present invention provides an ASL (ACPI control method Source Language) code which allows an external agent, e.g., an application program, to modify the ISA I/O port, the memory or the scratch pad register accessed via the ISA I/O port. In this configuration, the ASL code conditionally prevents the external agent from dictating a power system""s sleeping state which the hardware could not support.